const {
  voluntarySmartSort,
  voluntaryUpdateSortList,
  voluntaryFill
} = require('../../../../api/ai')
const {
  decodeUserInfo
} = require('../../../../api/login')

const {
  apiUrl,
} = require("../../../../config/config");
function isSort(arr) {
  var flag = false
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[i]) {
        flag = true
        break
      }
      // else {
      //   flag = false
      // }
    }
  }
  return flag
}
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    visible: {
      type: Boolean,
      value: false
    },

    modalObj: {
      type: Object,
      value: {}
    }
  },
  observers: {
    'modalObj': function (val) {
      if (val) {
        this.syncData(val)
      }
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    options: {
      desc: {
        title: '智能排序',
        desc1: '系统根据历史录取、报考规则等条件，自动调整院校专业组的顺序',
        desc2: '使用智能填充后志愿表不可撤回，如需备份当前志愿表请使用复制志愿表功能',
        conditionList: [{
            id: 'len',
            title: '已填报院校专业组数量至少2个',
            isFill: true,
            condition: 'gte',
            length: 2
          },
          {
            id: 'desc',
            title: '已填报院校专业组顺序存在不合理',
            isFill: true
          }
        ],
        buttonText: '开始排序',
        buttonDisable: true
      },
      export: {
        title: '导出志愿表',
        desc1: '当前志愿表的所有内容已经生成我Excel文件',
        desc2: '请复制文件链接去浏览器下载并使用',
        buttonText: '复制文件链接',
        buttonActive: true
      },
      fill: {
        title: '智能填充',
        desc1: '系统根据历史录取、报考规则等条件，自动调整院校专业组的顺序',
        desc2: '使用智能填充后志愿表不可撤回，如需备份当前志愿表请使用复制志愿表功能',
        conditionList: [{
            id: 'len',
            title: '已填报院校专业组数量至少1个',
            condition: 'gte',
            isFill: true,
            length: 1
          },
          {
            id: 'len',
            title: '志愿表未填满',
            condition: 'lt',
            isFill: true,
            length: 40
          }
        ],
        buttonText: '开始填充',
        buttonDisable: true
      },
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
  async  syncData(val) {
      const {
        options,
      } = this.data
      this.setData({
        ...val,
      })
      // console.log(val)
      if (val.key == 'export') {
        options[val.key].desc1 = '当前志愿表（志愿表' + val.detail.tempNo + '）的所有内容已经生成我Excel文件'
        this.setData({
          options
        })
      } else {
        var list = val.list.filter((item) => {
          return item.checked
        })
        var voluntaryType = list[0].name.replace(/[0-9]+/g,"")
        let arr = [] //概率
        list.map(e => {
          if (e.matchRate) {
            arr.push(e.matchRate)
          }
        })
        var len = list.length
        var flag = true
        options[val.key].conditionList.map((item) => {
          if (item.id == 'len') {
            if (item.condition == 'gte') {
              item.title = '已填报' + voluntaryType + '数量至少' + item.length + '个'
              item.isFill = len >= item.length ? true : false
              flag = flag && item.isFill
            } else if (item.condition == 'lt') {
              item.isFill = len < item.length ? true : false
              flag = flag && item.isFill
            }
          } else if (item.id == 'desc') {
            item.title = '已填报' + voluntaryType +'顺序存在不合理'
            item.isFill = isSort(arr)
            flag = flag && item.isFill
          }
        })
        options[val.key].buttonActive = flag
        this.setData({
          options
        })
      }
    },
    async confirm() {
      const {result}=await decodeUserInfo()
      if(result.vips.indexOf('svip')<=-1){
        wx.navigateTo({
          url: '/pages/article/vip/index',
        })
        return
      }
      const {
        options,
        key,
        detail,
        list
      } = this.data
      if(key=='fill'){
        const {message}= await voluntaryFill(detail.id)
        wx.showToast({
          title: message,
          icon:'none'
        })
        this.triggerEvent('load')
        this.setData({
          visible: false
        })
        return
      }
    if(key=='export'){
       const copyUrl=apiUrl+`api/voluntary/template/export/${detail.id}`
       wx.setClipboardData({
        data: copyUrl,
        success: function(res) {
         wx.showToast({
            title: '复制链接成功',
          })
          }
      })
    }else{
        var listNew = list.filter((item) => {
            return item.checked
        })
        var sortArray = list.filter((item) => {
          return item.checked
      })
        listNew.sort((a,b)=>a.matchRate-b.matchRate)
        sortArray.sort((a,b)=>a.sort-b.sort)
        const newArray=[]
        listNew.map((e,i)=>{
          e.list.map(e=>{
             if(e.id){
              newArray.push({
                sort:sortArray[i].sort,
                id:e.id
              })
             }
          })
        })
  
        const parmas = {
          list:newArray,
        }
        const result = await voluntaryUpdateSortList(parmas)
         this.triggerEvent('load')
    }
      this.setData({
        visible: false
      })

    },
    cancel() {
      this.setData({
        visible: false
      })
    }
  }
})